What are constraints and its types